package chapter06

/**
 * 创建构造器
 * 先调用父类构造器
 */
object Test05_Constructor {
  def main(args: Array[String]): Unit = {
    val student = new Student1()
    student.Student1

    val name1 = new Student1("张三")
    val nameAge = new Student1("张三",30)

  }
}


//定义一个类
class Student1 {

  //定义一个属性
  var name: String = _
  var age: Int = _

  println("1、主构造方法被调用")

  //声明辅助构造方法、单个参数
  def this(name: String) {
    this() //直接调用主构造器
    println("2、辅助构造器方法一被调用")

    this.name = name
    println(s"name: $name $age")
  }

  def this(name: String, age: Int) {
    this(name) //直接调用主构造器
    println("3、辅助构造器方法二被调用")
    this.age = age
    println(s"name: $name $age")
  }

  def Student1: Unit = {
    println("不是构造方法被调用，就是一个普通方法被调用")
  }
}